#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QXmlStreamReader>
#include "bezierparametrica.h"
#include "hermiteparametrica.h"

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

public slots:
    void desenha();
    void desenhaHermite();

private:
    Ui::MainWindow *ui;

    void desenhaFuncaoParametrica(QPainter& qPainter, QVector<Ponto> pontos);
    void desenhaPontosReferencia(QPainter& qPainter, QVector<Ponto> pontosReferencia);
    double calculaXTela(double x);
    double calculaYTela(double y);
    void desenhaEixos(QPainter& qPainter);
    double getXMinMundo(QVector<Ponto> pontos);
    double getXMaxMundo(QVector<Ponto> pontos);
    double getYMinMundo(QVector<Ponto> pontos);
    double getYMaxMundo(QVector<Ponto> pontos);

    int larguraPlano;
    int alturaPlano;

    QXmlStreamReader reader;

    int pixelsPorUnidade;

    double xMinMundo, yMinMundo, xMaxMundo, yMaxMundo;
    double xMinTela, yMinTela, xMaxTela, yMaxTela;
};

#endif // MAINWINDOW_H
